package top.mccat.common.core.domain.bk;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import top.mccat.common.annotation.Excel;
import top.mccat.common.core.domain.BaseEntity;

/**
 * 采购记录 bk_supplie_record
 * 
 * @author ruoyi
 * @date 2022-11-06
 */
public class BkSupplieRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 采购记录表id */
    private Integer id;

    /** 采购日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 已付货款 */
    @Excel(name = "已付货款")
    private BigDecimal paymentPaid;

    /** 未付货款 */
    @Excel(name = "未付货款")
    private BigDecimal paymentUnpaid;

    /** 是否开具发票，默认未开具 */
    @Excel(name = "发票状态", dictType="bk_invoice_status")
    private Integer invoice;

    /** 个体工商户可以设置默认为自己 */
    @Excel(name = "采购人")
    private String purchaser;

    @Excel(name = "商品名")
    private String productName;

    @Excel(name = "商品型号")
    private String productModel;

    /**
     * 供货商id
     */
    private Long supplierId;

    /**
     * 产品id
     */
    private Long productId;

    /** 本次采购数量 */
    @Excel(name = "本次采购数量", cellType = Excel.ColumnType.NUMERIC)
    private Double purchaseQuantity;

    /** 本次采购的价格 */
    @Excel(name = "本次采购的价格", cellType = Excel.ColumnType.NUMERIC)
    private BigDecimal purchasePrice;

    private int productEnable;

    private Long customerId;

    @Excel(name = "收款客户名称")
    private String customerName;

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setPurchaseDate(Date purchaseDate) 
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate() 
    {
        return purchaseDate;
    }
    public void setPaymentPaid(BigDecimal paymentPaid)
    {
        this.paymentPaid = paymentPaid;
    }

    public BigDecimal getPaymentPaid()
    {
        return paymentPaid;
    }
    public void setPaymentUnpaid(BigDecimal paymentUnpaid)
    {
        this.paymentUnpaid = paymentUnpaid;
    }

    public BigDecimal getPaymentUnpaid()
    {
        return paymentUnpaid;
    }
    public void setInvoice(Integer invoice) 
    {
        this.invoice = invoice;
    }

    public Integer getInvoice() 
    {
        return invoice;
    }
    public void setPurchaser(String purchaser) 
    {
        this.purchaser = purchaser;
    }

    public String getPurchaser() 
    {
        return purchaser;
    }
    public void setPurchaseQuantity(Double purchaseQuantity)
    {
        this.purchaseQuantity = purchaseQuantity;
    }

    public Double getPurchaseQuantity()
    {
        return purchaseQuantity;
    }
    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductModel() {
        return productModel;
    }

    public void setProductModel(String productModel) {
        this.productModel = productModel;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long recordId) {
        this.productId = recordId;
    }

    public BigDecimal getPurchasePrice()
    {
        return purchasePrice;
    }

    public int getProductEnable() {
        return productEnable;
    }

    public void setProductEnable(int productEnable) {
        this.productEnable = productEnable;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("purchaseDate", getPurchaseDate())
            .append("paymentPaid", getPaymentPaid())
            .append("paymentUnpaid", getPaymentUnpaid())
            .append("invoice", getInvoice())
            .append("purchaser", getPurchaser())
            .append("purchaseQuantity", getPurchaseQuantity())
            .append("purchasePrice", getPurchasePrice())
            .append("productEnable", getProductEnable())
            .toString();
    }
}
